从通道中读取数据。
function Coroutine\Channel->pop(float $timeout = 0) : mixed;
- 返回值可以是任意类型的
PHP
变量,包括匿名函数和资源 - 通道并关闭时,执行失败返回
false
$timeout
指定超时时间,浮点型,单位为秒,最小粒度为毫秒,在规定时间内没有生产者push
数据,将返回false
$timeout
参数在4.0.3
或更高版本可用
pop
消费数据后,将自动唤醒其中一个生产者协程,让其写入新数据- 多个生产者协程同时
push
时,底层自动进行排队,按照顺序逐个resume
这些生产者协程
- 自动
yield
当前协程,其他生产者协程push
生产数据后,通道可读,将重新resume
当前协程 - 多个消费者协程同时
pop
时,底层自动进行排队,底层会按照顺序逐个resume
这些消费者协程